package br.com.sjdr.projeto.gui;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import br.com.sjdr.projeto.item.Pedido;
import br.com.sjdr.projeto.pessoa.Cliente;

/**
 * Classe responsavel pela GUI da tela principal
 * 
 * @author dante
 * 
 */
public class TelaVendedor implements ActionListener{

	
	// Declarando o frame
	JFrame frameAdm = new JFrame("SJDR CONFECOES - Vendedor -");
	JPanel panelAdm = new JPanel();
	JMenuBar menuBar = new JMenuBar();

	// Declarando Menu Cliente
	JMenu menuCliente = new JMenu("MENU CLIENTE");
	// Declarando Componentes do Menu Cliente
	JMenuItem cadastrarCli = new JMenuItem("Cadastrar clientes");
	JMenuItem buscarCli = new JMenuItem("Buscar clientes");
	JMenuItem excluirCli = new JMenuItem("Excluir clientes");
	JMenuItem listaCli = new JMenuItem("Listagem de clientes");

	// Declarando Menu Item
	JMenu menuItem = new JMenu("MENU ITEM");
	// Declarando Componentes do Menu Item
	JMenuItem cadastrarItem = new JMenuItem("Cadastrar itens");
	JMenuItem listaItem = new JMenuItem("Listagem de itens");
	JMenuItem buscaItemCod = new JMenuItem("Buscar itens pelo codigo");
	JMenuItem buscaItemNome = new JMenuItem("Buscar itens pelo nome");
	JMenuItem historicoItem = new JMenuItem("Historico de compras");

	// Declarando Menu Pedido
	JMenu menuPedido = new JMenu("MENU PEDIDO");
	// Declarando Componentes do Menu Pedido
	JMenuItem novoPedido = new JMenuItem("Novo Pedido");
	JMenuItem consultaPedido = new JMenuItem("Consultar Pedido");

	JMenuItem sair= new JMenuItem("SAIR");
	

	// Declarando Labels
	JLabel logo = new JLabel();

	
	public void go() {

		/**
		 * Função responsavel por chamar tela
		 *  de vendedor
		 */
		
		
		// Definindo o frame
		frameAdm.setLocation(260, 80);
		frameAdm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frameAdm.setSize(800, 600); // Tamanho do frame
		frameAdm.setVisible(true); // Frame visivel ou nao

		// Centraliza a janela.
		java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit()
		.getScreenSize();
		int componentWidth = frameAdm.getWidth();
		int componentHeight = frameAdm.getHeight();
		frameAdm.setBounds((screenSize.width - componentWidth) / 2,
				(screenSize.height - componentHeight) / 4, componentWidth,
				componentHeight);

		// -----------------DEFININDO
		// MENUS-------------------------------------------

		// -----------------Inicio da Definição do menu
		// CLIENTE-----------------------

		menuBar.add(menuCliente);

		menuCliente.add(cadastrarCli); // Cadastrar cliente
		cadastrarCli.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				// frameAdm.setVisible(false);
				GuiCliente.guiNovoCliente();

			}

		});

		menuCliente.add(buscarCli); // Buscar cliente
		buscarCli.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg1) {
				GuiCliente.guiBuscarCliente();
			}
		});

		menuCliente.add(excluirCli); // Excluir cliente
		excluirCli.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg2) {
				GuiCliente.guiExcluirCliente();
				;
			}
		});

		menuCliente.add(listaCli); // Listagem de clientes
		listaCli.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg3) {
				GuiCliente.guiListagemCliente();
			}
		});
		// -----------------Fim da Definição do menu
		// CLIENTE-----------------------

		

		/**
		 * Adição de Botões abaixo
		 */
		menuBar.add(menuItem);

		menuItem.add(cadastrarItem); // Cadastrar Item
		cadastrarItem.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg7) {
				GuiItem g = new GuiItem();
				g.adicionarItem();	
				frameAdm.setVisible(false);
			}
		});

		menuItem.add(listaItem); // Listagem de Itens
		listaItem.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg9) {
				GuiItem g = new GuiItem();
				g.imrprimiEstoque();
			
								
			}
		});

		menuItem.add(buscaItemCod); // Buscar Itens por codigo
		buscaItemCod.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg10) {
				GuiItem g = new GuiItem();
				String cod = JOptionPane.showInputDialog(null,"Digite o Codigo");
				g.buscaCod(Integer.parseInt(cod));
			}
		});

		menuItem.add(buscaItemNome); // Buscar Itens por nome
		buscaItemNome.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg11) {
				GuiItem g = new GuiItem();
				String nome = JOptionPane.showInputDialog(null,"Digite o nome o Item");
				g.buscaPorNome(nome);	
				
				
			}
		});

		menuItem.add(historicoItem); // Listagem de Itens
		historicoItem.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg12) {
				GuiItem g = new GuiItem();
				g.imrprimiHistorico();
					
			}
		});
		// -----------------Fim da Definição do menu
		// ITEM----------------------------------

		// -----------------Inicio da Definição do menu
		// PEDIDO-----------------------------
		menuBar.add(menuPedido);

		menuPedido.add(novoPedido); // Cadastrar novo pedido
		novoPedido.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg13) {
				GuiPedido gp = new GuiPedido();
				Cliente p = gp.buscarCliente(JOptionPane.showInputDialog(null,
				"Digite o nome do Cliente para efetuar um novo pedido"));
				if (p == null) {
					JOptionPane.showMessageDialog(null,
					"cliente não encontrado");
				} else {
					Pedido p1 = new Pedido();
					p1.setCliente(p.getNome());
					gp.novoPedido(p1);
					
				}
			
				
			}
		});

		
		
		menuPedido.add(consultaPedido); // Consulta pedidos em aberto
		consultaPedido.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg14) {
				GuiPedido gp = new GuiPedido();
				Pedido p3 = gp.buscarPedido(JOptionPane.showInputDialog(null,
				"Digite o nome do Cliente com Pedido em Aberto"));
				if (p3 == null) {
					JOptionPane
					.showMessageDialog(null, "Pedido não encontrado");
				} else {
					gp.novoPedido(p3);
					
				}
				
				
				
				
			}
		});
		
		menuBar.add(sair);
		sair.addActionListener(new ActionListener(){
			
					public void actionPerformed(ActionEvent arg18) { 
						
						frameAdm.setVisible(false);
						TelaLogin t = new TelaLogin();
						t.login();
						
						
						
					}
				});	
		

		// -----------------Fim da Definição do menu
		// PEDIDO--------------------------------

		
		
		
		  
		
		
		// Adicionando componentes ao painel
		frameAdm.setBackground(Color.white); // cordo painel
		menuBar.setVisible(true);
		frameAdm.setJMenuBar(menuBar);

		
		
		
		// Definindo Labels
		logo.setIcon(new ImageIcon("logosjdr.jpg"));

		// Adicionando componentes ao frame

		frameAdm.getContentPane().add(BorderLayout.NORTH, panelAdm); // Adicionando
																		// painel
		frameAdm.getContentPane().add(BorderLayout.CENTER, logo); // Adicionado
																	// logo

	}

	@Override
	public void actionPerformed(ActionEvent e) {
		
			
	}
}
